package com.example.diarymanger.bean;

import com.baomidou.mybatisplus.annotation.*;
import com.example.diarymanger.config.StringListTypeHandler;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

@Data
@Getter
@Setter
@TableName("notes")
public class NoteBean {

    @TableId(value = "id", type = IdType.AUTO) // 主键，自增
    private Integer id;

    @TableField("note_id")
    private Integer noteId; // 笔记id

    @TableField("name")
    private String name; // 用户名

    @TableField("uid")
    private Integer uid; // 用户id

    @TableField("note_title")
    private String noteTitle; // 笔记标题

    @TableField("date")
    @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
    private Date date;

    @TableField("note_content")
    private String noteContent; // 笔记内容

    @TableField("image_link")
    private String imageLink; // 图片链接

    @TableField("Is_public")
    private Boolean isPublic; // 是否公开？0为不公开，1为公开

    @TableField("like_count")
    private Integer likeCount; // 点赞数

    @TableField("cover_link")
    private String coverLink; // 封面链接

    @TableField("tags")
    private String tagsString; // 实际存储字段

    @TableField(exist = false)
    private List<String> tags; // 临时存储字段


    public void setTags(List<String> tags) {
        this.tags = tags;
        if (tags != null && !tags.isEmpty()) {
            // 将标签列表转换为逗号分隔的字符串
            this.tagsString = String.join(",", tags);
        } else {
            this.tagsString = ""; // 如果没有标签，设置为空字符串
        }
    }
}
